<?php
/*
# TCE - Tight Control Environment: Hosting Platform
# Copyright (c) 2006 by the TightControl Dev Team
# http://tce.mystichost.net
#
#
# License:
#    This program is free software; you can redistribute it and/or
#    modify it under the terms of the MPL Mozilla Public License
#    as published by the Free Software Foundation; either version 1.1
#    of the License, or (at your option) any later version.
#
#    This program is distributed in the hope that it will be useful,
#    but WITHOUT ANY WARRANTY; without even the implied warranty of
#    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
#    MPL Mozilla Public License for more details.
#
#    You may have received a copy of the MPL Mozilla Public License
#    along with this program.
#
#    An on-line copy of the MPL Mozilla Public License can be found
#    http://www.mozilla.org/MPL/MPL-1.1.html
#
#
# The TCE Home Page is at:
#
#    http://tce.mystichost.net
*/
/* Define the TCE_CONTROLLERS_PATH */
define('TCE_CONTROLLERS_PATH', realpath(dirname(__FILE__)) . '/');
/**
 * Controller class
 * 
 * All controller abstraction layers must extend on this one
 */
abstract class Controller {
	/**
	 * Returns the list of support controllers
	 *
	 * @return array
	 */
	abstract static function listControllers ();
	/**
	 * Register Controller class $Controller
	 *
	 * @param string $ControllerClass
	 */
	abstract static function Register($Controller);
	/**
	 * Ths function loads all relevant controllers
	 *
	 * @return boolean
	 */
	abstract static function loadControllers();
	/**
	 * Creates a new instance of $ControllerClass if $Persistent is set to false
	 *
	 * @param string $ControllerClass
	 * @param boolean $Persistent
	 * @param string $PersistentID
	 * @return boolean/object
	 */
	abstract static function &createController($ControllerClass, $Persistent = false, $PersistentID = 'default');
}

?>